for _ in range(int(input())):
d=int(input())
if d==0:
print("Y",0/1,0/1)
continue
if d<4:
print("N")
continue
tmp=(d*d-4*d)**0.5
print("Y",(d+tmp)/2,(d-tmp)/2)
// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
#include <limits>
using namespace std;
long double bs(long double s,long double e,long long d){
if(s<=e){
long double mid=s+(e-s)/2;
long double ans =mid*(d-mid);
if(abs(mid*(d-mid))<=0.000001) return mid;
else if(ans>d ) return bs(mid+0.000000001,e,d);
else return bs(s,mid-0.000000001,d);
}
return s;
}
int main() {
int t;
cin>>t;
while(t--){
long long d;
cin>>d;
long double a;
a =bs(0,1000000000,d);
cout.precision(10);
if(d==0){
cout<<fixed<<"Y"<<" "<<0.000000<<" "<<0.000000<<endl;
}
else if(d==1){
cout<<"N"<<endl;
}
else if(d==4){
cout<<fixed<<"Y"<<" "<<2.000000<<" "<<2.000000<<endl;
}
else if(abs((a*(d-a))-d)<=0.000001){
cout<<fixed<<"Y"<<" "<<a<<" "<<d-a<<endl;
}else{
cout<<"N"<<endl;
}
}
return 0;
}
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |
436. Find Right Interval | 435. Non-overlapping Intervals |
406. Queue Reconstruction by Height | 380. Insert Delete GetRandom O(1) |
332. Reconstruct Itinerary | 368. Largest Divisible Subset |
377. Combination Sum IV | 322. Coin Change |
307. Range Sum Query - Mutable | 287. Find the Duplicate Number |
279. Perfect Squares | 275. H-Index II |
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |